
// 代理模式
// 以房东和中介为例

#include <iostream>
#include <string>

class rent_house
{
public:
    virtual void _rent_huose() = 0;
};

// 房东
class landlord : public rent_house
{
public:
    void _rent_huose()
    {
        std::cout << "将房子租出去" << std::endl;
    }
};

// 中介
class intermediary : public rent_house
{
public:
    void _rent_huose()
    {
        std::cout << "发布招租房启示" << std::endl;
        std::cout << "带人看房" << std::endl;
        _landlord._rent_huose();
        std::cout << "房屋维修" << std::endl;
    }

private:
    landlord _landlord;
};

int main()
{
    intermediary i;
    i._rent_huose();

    return 0;
}